import { pgTable, uuid, unique } from 'drizzle-orm/pg-core';
import { sql } from 'drizzle-orm';
import { simpleAuditFields } from './audit-fields';

/**
 * 系统-用户角色表
 */
export const sysUserRole = pgTable(
  'sys_user_role',
  {
    /** 关联ID（主键） */
    id: uuid('id').primaryKey().default(sql`uuidv7()`),
    /** 用户ID（逻辑外键，关联 sys_user.id） */
    userId: uuid('user_id').notNull(),
    /** 角色ID（逻辑外键，关联 sys_role.id） */
    roleId: uuid('role_id').notNull(),
    ...simpleAuditFields(),
  },
  (table) => [
    unique('sys_user_role_user_id_role_id_key').on(table.userId, table.roleId),
  ]
);

export type SysUserRole = typeof sysUserRole.$inferSelect;
export type NewSysUserRole = typeof sysUserRole.$inferInsert;

